# @Time    :2025/3/30 8:04
# 单for三角形 等腰
# n = 5
# for i in range(1, n + 1):
#     print(" " * (n - i) + "*"* (i * 2 - 1))
#
# #单for三角形 左直角三角形
# n = 5
# for i in range(1, n + 1):
#     print("" * (n - i) + "*"* (i * 2 - 1))

# 双for打印直角等腰三角形
# n = 5
# for i in range(1, n + 1):
#     for j in range(0, i):
#         print(""*(n-1), end="")
#     print("*" * (i * 2 - 1))

# 双for打印直角等腰三角形
# n = 5
# for i in range(1, n + 1):
#     for j in range(0, i):
#         print("" *i, end="")
#     print("*" * (i * 2 - 1))

# # 双for打印直角等腰三角形
# n = 5
# for i in range(1, n + 1):
#     for j in range(0, i):
#         print("", end="")
#     print("*" * (i * 2 - 1))

# # 双for打印等腰三角形
# n = 5
# for i in range(1, n + 1):
#     for j in range(0, i):
#         print(end="")
#     print("*" * (i * 2 - 1))

# 双for打印等腰三角形
# n = 5
# for i in range(1, n + 1):
#     for j in range(0, n-i):
#         print("p",end="")
#     print("*" * (i * 2 - 1))

# 双for打印正等腰三角形
# n=5
# for i in range (n+1):#1-5循环
#     for j in range (n-i): #当i=1时，（n-i)=4, j是0-3循环，所以
#         print(" ",end="")                              #这里会循环打印4个空
#     print("*"*(i*2-1))


# 学生字典的

"""
默认值参数练习：
创建一个函数 print_student_info，接受两个参数 student_name 和
 student_grade，其中 student_grade 的默认值为 90。
函数内打印学生的姓名和成绩。
分别调用该函数只传入姓名和同时传入姓名与成绩，查看默认值参数的效果。
"""
# def print_student_info(student_name, student_grade=90):
#     print(f"{student_name}{student_grade}")
#
# print_student_info("黄儿")
# print_student_info("黄儿1", student_grade=1000)

"""12）给定一个字典 student_scores = {"Alice": 85, "Bob": 92, "Charlie": 78, "David": 88}，
编写一个程序，将每个学生的分数增加 5 分，
并将结果存储在一个新的字典 updated_scores 中"""

# student_scores = {"Alice": 85,
#                   "Bob": 92,
#                   "Charlie": 78,
#                   "David": 88}
#
# def stu_score(student_scores):
#     updated_scores={}
#     for name ,score in student_scores.items():
#         print(score)
#         updated_scores[name]=score+5
#     return updated_scores
#
#
# print(stu_score(student_scores))


"""
使用匿名函数和 sorted 函数对以下列表
students = [{"name": "Alice", "score": 85},
{"name": "Bob", "score": 70},
{"name": "Charlie", "score": 90}]
按照学生的成绩从高到低进行排序。"""

# students = [{"name": "Alice", "score": 85},
# {"name": "Bob", "score": 70},
# {"name": "Charlie", "score": 90}]
#
# students.sort(key=lambda s:s["score"],reverse=True)
# print(students)

"""
### 编程题 2：嵌套字典数据处理

有一个嵌套字典，存储了学生的课程成绩信息。 编写一个函数，计算每个学生的平均成绩，
并返回一个新的字典，键为学生名字，值为平均成绩。
结构如下：
students = {
    "Alice": {
        "Math": 85,
        "English": 90,
        "Science": 78
    },
    "Bob": {
        "Math": 92,
        "English": 88,
        "Science": 95
    },
    "Charlie": {
        "Math": 70,
        "English": 75,
        "Science": 80
    }
}
"""
#
# students = {
#     "Alice": {
#         "Math": 85,
#         "English": 90,
#         "Science": 78
#     },
#     "Bob": {
#         "Math": 92,
#         "English": 88,
#         "Science": 95
#     },
#     "Charlie": {
#         "Math": 70,
#         "English": 75,
#         "Science": 80
#     }
# }
#
#
# def stu_score():
#     for k, v in students.items():
#         #       print( v.values())
#         avg = sum(v.values()) // len(v)#平均数
#         students[k] = round(avg, 2)#保留两位小数
#     return students#返回字典
#
#
# print(stu_score())#调用函数 打印


"""
### 编程题 1：数字反转

编写一个函数，接受一个整数作为参数，返回该整数的反转形式。例如，输入 123，返回 321；输入 -456，返回 -654。
第五条的02视频 讲解了字符串的反转
"""


def f(input_nums):
    i = 1
    if input_nums < 0:
        input_nums = -input_nums
        i = -1
    new_nums = str(input_nums)
    new_num = new_nums[::-1]
    input_nums = int(new_num)
    return input_nums * i


input_nums = int(input("输入："))
print(f(input_nums))
